﻿namespace ConsoleApp1.demo;

// 在 C# 中，结构是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构。
// 类和结构有以下几个基本的不同点：
// 类是引用类型，结构是值类型。
// 结构不支持继承。
// 结构不能声明默认的构造函数。

// struct类似js中的对象，java中的entity类，但java需要每次都定义新类
internal struct Books
{
    private string title;
    private string author;
    private string subject;
    private int book_id;

    public void getValues(string t, string a, string s, int id)
    {
        title = t;
        author = a;
        subject = s;
        book_id = id;
    }

    public void display()
    {
        Console.WriteLine("Title : {0}", title);
        Console.WriteLine("Author : {0}", author);
        Console.WriteLine("Subject : {0}", subject);
        Console.WriteLine("Book_id :{0}", book_id);
    }
}

public class p10_struct
{
    public static void Test1()
    {
        var Book1 = new Books(); /* 声明 Book1，类型为 Book */
        var Book2 = new Books(); /* 声明 Book2，类型为 Book */

        /* book 1 详述 */
        Book1.getValues("C Programming",
            "Nuha Ali", "C Programming Tutorial", 6495407);

        /* book 2 详述 */
        Book2.getValues("Telecom Billing",
            "Zara Ali", "Telecom Billing Tutorial", 6495700);

        /* 打印 Book1 信息 */
        Book1.display();

        /* 打印 Book2 信息 */
        Book2.display();

        // Console.ReadKey();
    }
}